package com.ruoyi.dynamic.service;


import com.ruoyi.dynamic.model.pojo.result.app.AppRoomMaiUserResult;

import java.math.BigDecimal;

/**
 * 融云自定义发消息类型
 */
public interface IMessageService {


    /**
     * 设置聊天室属性
     *
     * @param chatRoomId 聊天室ID
     * @param userId     操作用户ID
     * @param key        key
     * @param value      value
     * @param autuDele   是否删除
     * @param objectName 聊天室属性变化通知消息的消息类型
     * @param content    聊天室属性变化通知消息的消息内容
     * @return
     */
    void setRoomChatRoomAttr(String chatRoomId, String userId, String key, String value, Integer autuDele, String objectName, String content);


    /**
     * 禁言某个用户
     *
     * @param chatRoomId 聊天室ID
     * @param userId     操作用户ID
     * @param minute     分钟
     */
    void banByUser(String chatRoomId, String userId, Integer minute);


    /**
     * 取消禁言某个用户
     */
    void cancelBanByUser(String chatRoomId, String userId);


    /**
     * 发送聊天室自定义消息
     *
     * @param fromUserId   发送人ID
     * @param toChatroomId 聊天室id
     * @param objectName   消息类型
     * @param content      消息内容JSON格式
     * @return
     */
    void sendCustomMessage(String fromUserId, String toChatroomId, String objectName, AppRoomMaiUserResult result, String msgType);


    /**
     * 更新房间的在线人数
     *
     * @param aLong
     * @param groupId
     * @param id      房间id
     */
    void updateRoomLineNum(Long aLong, String groupId, Long id);


    /**
     * 房间排行榜   整个房间
     *
     * @param groupId
     * @param toString
     * @param id
     * @param userId
     * @param giftPrice
     */
    void sendRoomRank(String groupId, String toString, Long id, Long userId, BigDecimal giftPrice);


    /**
     * 房间排行榜   直播间某个用户
     *
     * @param groupId
     * @param toString
     * @param id
     * @param userId
     * @param giftPrice
     */
    void sendRoomRankAimUser(String groupId, String toString, Long id, Long userId, BigDecimal giftPrice, Long aimUserId);


    /**
     * 删除聊天室属性KV
     *
     * @param chatRoomId 聊天室id
     * @param userId     主播id
     * @param key        key
     * @param objectName
     * @param content
     */
    void removeRoomKV(String chatRoomId, String userId, String key, String objectName, String content);
}


